package com.kaili.basic.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.kaili.basic.pojo.dto.MdmGroupQueryByPageDto;
import com.kaili.basic.pojo.entity.MdmGroupEntity;
import com.kaili.basic.pojo.vo.MdmGroupQueryAllVo;
import com.kaili.basic.pojo.vo.MdmQueryGroupByIdVo;

import java.util.List;

/**
 * @Desc:  分组管理
 * @author: PF10FD1E
 * @Time: 2019/7/26 16:23
 * @Copyright: © 2018 杭州凯立通信有限公司 版权所有
 * @Warning: 本内容仅限于公司内部传阅, 禁止外泄或用于其它商业目的
 */
public interface IMdmGroupService {
    /**
    * @Desc:  分页根据分组编号和分组名称模糊查询
    * @author: TBS
    * @Time: 2019/8/9 13:35
    * @param page
    * @param mdmGroupQueryByPageDto
    * @return com.baomidou.mybatisplus.plugins.Page<com.kaili.basic.pojo.vo.MdmGroupQueryAllVo>
    */
    Page<MdmGroupQueryAllVo> queryPageList(Page<MdmGroupQueryAllVo> page, MdmGroupQueryByPageDto mdmGroupQueryByPageDto);

    /**
    * @Desc:  增加
    * @author: TBS
    * @Time: 2019/8/9 13:36
    * @param mdmGroupEntity
    * @return void
    */
    void add(MdmGroupEntity mdmGroupEntity);

    /**
    * @Desc:  去重
    * @author: TBS
    * @Time: 2019/8/9 13:36
    * @param mdmGroupEntity
    * @return java.lang.Integer
    */
    Integer queryDprvGroup(MdmGroupEntity mdmGroupEntity);

    /**
    * @Desc:  查询上级ID
    * @author: TBS
    * @Time: 2019/8/9 13:45
    * @param id
    * @return java.lang.String
    */
    String queryParentGroupId(int id);

    /** 根据ID删除
    * @Desc:
    * @author: TBS
    * @Time: 2019/8/9 13:48
    * @param id
    * @return void
    */
    void delete(int id);

    /**
    * @Desc: 修改
    * @author: TBS
    * @Time: 2019/8/9 13:48
    * @param mdmGroupEntity
    * @return void
    */
    void update (MdmGroupEntity mdmGroupEntity);

    /**
    * @Desc: 导出
    * @author: TBS
    * @Time: 2019/8/9 13:48
    * @param mdmGroupQueryByPageDto
    * @return java.util.List<com.kaili.basic.pojo.vo.MdmGroupQueryAllVo>
    */
    List<MdmGroupQueryAllVo> queryGroupExport(MdmGroupQueryByPageDto mdmGroupQueryByPageDto);

    /**
    * @Desc: 通过SQL获取数据库中最大值
    * @author: TBS
    * @Time: 2019/8/9 13:48
    *
    * @return java.lang.String
    */
    String getCode();

    /**
    * @Desc: 根据分组ID 查询
    * @author: TBS
    * @Time: 2019/8/9 13:49
    * @param id
    * @return com.kaili.basic.pojo.vo.MdmQueryGroupByIdVo
    */
    MdmQueryGroupByIdVo queryGroupById (int id);

    /**
    * @Desc: 根据机构ID 查询
    * @author: TBS
    * @Time: 2019/8/9 13:49
    * @param id
    * @return java.util.List<com.kaili.basic.pojo.entity.MdmGroupEntity>
    */
    List<MdmGroupEntity> queryGroupByOrgId (int id);
}
